package com.c2b.algorithm.leetcode.jzoffer;

/**
 * <a href="https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46?tpId=13&tqId=23445&ru=%2Fpractice%2F4436c93e568c48f6b28ff436173b997f&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking&sourceUrl=">构建乘积数组</a>
 * <p>
 * 给定一个数组 A[0,1,...,n-1] ,请构建一个数组 B[0,1,...,n-1] ,其中 B 的元素 B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]（除 A[i] 以外的全部元素的的乘积）。程序中不能使用除法。</p>
 * <p>（注意：规定 B[0] = A[1] * A[2] * ... * A[n-1]，B[n-1] = A[0] * A[1] * ... * A[n-2]）
 * 对于 A 长度为 1 的情况，B 无意义，故而无法构建，用例中不包括这种情况。</p>
 * <p>
 * 数据范围：1≤n≤10  ，数组中元素满足∣val∣≤10
 *
 * @author c2b
 * @since 2023/3/9 10:44
 */
public class JzOffer0066Multiply {

    public int[] multiply(int[] A) {
        int[] res = new int[A.length];
        for (int i = 0; i < res.length; i++) {
            int multiply = 1;
            for (int j = 0; j < A.length; j++) {
                if (j != i) {
                    multiply *= A[j];
                }
            }
            res[i] = multiply;
        }
        return res;
    }

    public static void main(String[] args) {
        JzOffer0066Multiply jzOffer0066Multiply = new JzOffer0066Multiply();
        int[] multiply = jzOffer0066Multiply.multiply(new int[]{100,50});
        for (int i : multiply) {
            System.out.println(i);
        }
    }
}
